package com.edu.study.base.lmsOrder.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * lmsOrder对象 lms_order
 * 
 * @author zw
 * @date 2021-08-11
 */
@ApiModel("订单对象")
@Data
public class LmsOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    
    private String id;

    /** 会员ID */
    @Excel(name = "会员ID")
    @ApiModelProperty(value="会员ID")
    private String memberId;

    /** 用户帐号 */
    @Excel(name = "用户帐号")
    @ApiModelProperty(value="用户帐号") 
    private String memberUsername;

    /** 订单编号 */
    @Excel(name = "订单编号")
    @ApiModelProperty(value="订单编号")  
    private String orderSn;

    /** 订单来源：0->PC订单；1->app订单 */
    @Excel(name = "订单来源：0->PC订单；1->app订单")
    @ApiModelProperty(value="订单来源：0->PC订单；1->app订单")   
    private Integer sourceType;

    /** 订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单 */
    @Excel(name = "订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单")
    @ApiModelProperty(value="订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单")  
    private Integer status;

    /** 订单类型：0->正常订单；1->秒杀订单 */
    @Excel(name = "订单类型：0->正常订单；1->秒杀订单")
    @ApiModelProperty(value="订单类型：0->正常订单；1->秒杀订单")    
    private Integer orderType;

    /** 支付方式：0->未支付；1->支付宝；2->微信 */
    @Excel(name = "支付方式：0->未支付；1->支付宝；2->微信")
    @ApiModelProperty(value="支付方式：0->未支付；1->支付宝；2->微信")     
    private Integer payType;

    /** 订单备注 */
    @Excel(name = "订单备注")
    @ApiModelProperty(value="订单备注")
     private String note;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date modifyTime;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date paymentTime;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date deliveryTime;

    /** 确认收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "确认收货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date receiveTime;

    /** 评价时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "评价时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date commentTime;

    /** 自动确认时间（天） */
    @Excel(name = "自动确认时间", readConverterExp = "天=")
    private Long autoConfirmDay;

    /** 确认收货状态：0->未确认；1->已确认 */
    @Excel(name = "确认收货状态：0->未确认；1->已确认")
    private Integer confirmStatus;

    /** 订单总金额 */
    @Excel(name = "订单总金额")
    @ApiModelProperty(value="订单总金额")      
    private BigDecimal totalAmount;

    /** 应付金额（实际支付金额） */
    @Excel(name = "应付金额", readConverterExp = "实=际支付金额")
    @ApiModelProperty(value="应付金额")      
    private BigDecimal payAmount;

    /** 促销优化金额（促销价、满减、阶梯价） */
    @Excel(name = "促销优化金额", readConverterExp = "促=销价、满减、阶梯价")
    @ApiModelProperty(value="促销优化金额")  
    private BigDecimal promotionAmount;

    /** 积分抵扣金额 */
    @Excel(name = "积分抵扣金额")
    @ApiModelProperty(value="积分抵扣金额")   
    private BigDecimal integrationAmount;

    /** 优惠券抵扣金额 */
    @Excel(name = "优惠券抵扣金额")
    @ApiModelProperty(value="优惠券抵扣金额")    
    private BigDecimal couponAmount;

    /** 管理员后台调整订单使用的折扣金额 */
    @Excel(name = "管理员后台调整订单使用的折扣金额")
    @ApiModelProperty(value="管理员后台调整订单使用的折扣金额")    
    private BigDecimal discountAmoun;

    /** 运费金额 */
    @Excel(name = "运费金额")
    private BigDecimal freightAmount;

    /** 优惠券ID */
    @Excel(name = "优惠券ID")
    private Long couponId;

    /** 下单时使用的积分 */
    @Excel(name = "下单时使用的积分")
    @ApiModelProperty(value="下单时使用的积分")     
    private Long useIntegration;

    /** 删除状态：0->未删除；1->已删除 */
    @Excel(name = "删除状态：0->未删除；1->已删除")
    private Integer deleteStatus;

    /** 物流公司(配送方式) */
    @Excel(name = "物流公司(配送方式)")
    private String deliveryCompany;

    /** 物流单号 */
    @Excel(name = "物流单号")
    private String deliverySn;

    /** 活动信息 */
    @Excel(name = "活动信息")
    private String promotionInfo;

    /** 发票类型：0->不开发票；1->电子发票；2->纸质发票 */
    @Excel(name = "发票类型：0->不开发票；1->电子发票；2->纸质发票")
    private Integer billType;

    /** 发票抬头 */
    @Excel(name = "发票抬头")
    private String billHeader;

    /** 发票内容 */
    @Excel(name = "发票内容")
    private String billContent;

    /** 收票人电话 */
    @Excel(name = "收票人电话")
    private String billReceiverPhone;

    /** 收票人邮箱 */
    @Excel(name = "收票人邮箱")
    private String billReceiverEmail;

    /** 收货人姓名 */
    @Excel(name = "收货人姓名")
    private String receiverName;

    /** 收货人电话 */
    @Excel(name = "收货人电话")
    private String receiverPhone;

    /** 收货人邮编 */
    @Excel(name = "收货人邮编")
    private String receiverPostCode;

    /** 省份/直辖市 */
    @Excel(name = "省份/直辖市")
    private String receiverProvince;

    /** 城市 */
    @Excel(name = "城市")
    private String receiverCity;

    /** 区 */
    @Excel(name = "区")
    private String receiverRegion;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String receiverDetailAddress;

    /** prepay_id */
    @Excel(name = "prepay_id")
    private String prepayId;

    /** supply_id */
    @Excel(name = "supply_id")
    private Long supplyId;

    /** goods_id */
    @Excel(name = "goods_id")
    private Long goodsId;

    /** goods_name */
    @Excel(name = "goods_name")
    private String goodsName;

    /** school_id */
    @Excel(name = "school_id")
    private Long schoolId;

    /** receiver_id */
    @Excel(name = "receiver_id")
    private Long receiverId;

    /** group_id */
    @Excel(name = "group_id")
    private Long groupId;

    /** 是否开发票 1=不发票 2=个人发票 3=公司发票 */
    @Excel(name = "是否开发票 1=不发票 2=个人发票 3=公司发票")
    private Integer taxType;

    /** 发票内容 */
    @Excel(name = "发票内容")
    private String taxContent;

    /** 税号 */
    @Excel(name = "税号")
    private String taxCode;

    /** 发票抬头 */
    @Excel(name = "发票抬头")
    private String taxTitle;

    /** 是否评论，1未评论，2已评论 */
    @Excel(name = "是否评论，1未评论，2已评论")
    private Integer isComment;

    /** pid */
    @Excel(name = "pid")
    private Long pid;

    /** 可以获得的积分 */
    @Excel(name = "可以获得的积分")
    @ApiModelProperty(value="可以获得的积分")   
    private Long integration;

    /** 可以活动的成长值 */
    @Excel(name = "可以活动的成长值")
    private Long growth;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("memberId", getMemberId())
            .append("memberUsername", getMemberUsername())
            .append("orderSn", getOrderSn())
            .append("sourceType", getSourceType())
            .append("status", getStatus())
            .append("orderType", getOrderType())
            .append("payType", getPayType())
            .append("note", getNote())
            .append("createTime", getCreateTime())
            .append("modifyTime", getModifyTime())
            .append("paymentTime", getPaymentTime())
            .append("deliveryTime", getDeliveryTime())
            .append("receiveTime", getReceiveTime())
            .append("commentTime", getCommentTime())
            .append("autoConfirmDay", getAutoConfirmDay())
            .append("confirmStatus", getConfirmStatus())
            .append("totalAmount", getTotalAmount())
            .append("payAmount", getPayAmount())
            .append("promotionAmount", getPromotionAmount())
            .append("integrationAmount", getIntegrationAmount())
            .append("couponAmount", getCouponAmount())
            .append("discountAmoun", getDiscountAmoun())
            .append("freightAmount", getFreightAmount())
            .append("couponId", getCouponId())
            .append("useIntegration", getUseIntegration())
            .append("deleteStatus", getDeleteStatus())
            .append("deliveryCompany", getDeliveryCompany())
            .append("deliverySn", getDeliverySn())
            .append("promotionInfo", getPromotionInfo())
            .append("billType", getBillType())
            .append("billHeader", getBillHeader())
            .append("billContent", getBillContent())
            .append("billReceiverPhone", getBillReceiverPhone())
            .append("billReceiverEmail", getBillReceiverEmail())
            .append("receiverName", getReceiverName())
            .append("receiverPhone", getReceiverPhone())
            .append("receiverPostCode", getReceiverPostCode())
            .append("receiverProvince", getReceiverProvince())
            .append("receiverCity", getReceiverCity())
            .append("receiverRegion", getReceiverRegion())
            .append("receiverDetailAddress", getReceiverDetailAddress())
            .append("prepayId", getPrepayId())
            .append("supplyId", getSupplyId())
            .append("goodsId", getGoodsId())
            .append("goodsName", getGoodsName())
            .append("schoolId", getSchoolId())
            .append("receiverId", getReceiverId())
            .append("groupId", getGroupId())
            .append("taxType", getTaxType())
            .append("taxContent", getTaxContent())
            .append("taxCode", getTaxCode())
            .append("taxTitle", getTaxTitle())
            .append("isComment", getIsComment())
            .append("pid", getPid())
            .append("integration", getIntegration())
            .append("growth", getGrowth())
            .toString();
    }
}
